//
//  ManagedObjectHelper.h
//  ForTest
//
//  Created by liboxiang on 2019/3/22.
//  Copyright © 2019 liboxiang. All rights reserved.
//

#import <Foundation/Foundation.h>
#import <CoreData/CoreData.h>

NS_ASSUME_NONNULL_BEGIN

@interface ManagedObjectHelper : NSObject
/*
 entityName ： model名称
 list ：数据
 uidKey ：用于唯一识别一条数据的key
 groupDic ：同一entityName中可能有不同类型的数据，用以区分数据类型，可为空
 ignoreKeysArray ： merge的时候忽略的属性，list中的dic的对应key的值不会更新到entityName，可为空
 
 处理流程=》查找本地groupDic条件下的所有uid（对应于uidKey）=〉通过比对查找到的uid将list分成本地有的（toMergeArray）和本地没有的（toAddArray）两部分=》toAddArray直接添加。toMergeArray通过uid查找到本地数据，然后合并，合并的时候忽略ignoreKeysArray对应的属性。
 
 
 */
+ (void)mergeOrAddWithEntityName:(NSString *)entityName list:(NSArray<NSDictionary *>*)list uidKey:(NSString *)uidKey groupDic:(nullable NSDictionary *)groupDic ignoreKeys:(nullable NSArray *)ignoreKeysArray context:(NSManagedObjectContext *)context;

@end

NS_ASSUME_NONNULL_END
